草庐IT

c - 在winapi中拖放

全部标签

c++ - C 和 C++ 中 WINAPI 的区别

我正在从驱动程序读取数据。该驱动程序附带了有关如何基于该驱动程序开发应用程序的示例。这些例子是几年前写的。他们使用WINAPI和C。现在我将使用他们的一些头文件。它们定义了数据结构和各种其他内容。我尝试在C++中创建WINAPI并尝试链接到这些文件。但正如解释的here,inthelastanswer,我非常相信我的代码也有同样的问题。现在,我不能按照那里的建议去做。我的程序很长,我不能弄乱头文件。它们很复杂。我的选择是完全用C语言创建我的项目(我希望它能解决问题)。首先,我将文件.cppt0重命名为.c。(我什至不知道这两种编程语言之间的区别。到目前为止,它们的区别没有任何区别。)主

c++ - WndProc调用机制(WinAPI)

我正在尝试了解Windows应用程序的工作原理。有一个WndProc函数,其中发生消息处理。LRESULTCALLBACKWndProc(HWNDhwnd,UINTmsg,WPARAMwParam,LPARAMlParam){switch(msg){caseWM_KEYDOWN:if(wParam==VK_ESCAPE){if(MessageBox(0,L"Areyousure?",L"Exit?",MB_YESNO|MB_ICONQUESTION)==IDYES)//ReleasethewindowsallocatedmemoryDestroyWindow(hwnd);}return

C++ WinAPI - Windows 关闭之前的清理终止进程?

通常,在使用GUI窗口时,您可以捕获WM_CLOSE事件以在应用程序终止之前执行清理任务。但是,如果我的应用程序只是在后台运行并且进程仅在Windows关闭时终止-是否有任何方法可以捕获此事件并在进程终止之前执行一些清理?我知道无法干预任务管理器进程的关闭。但是随着关机,我只注意到有一个shutdown和一个shutdown/F命令。 最佳答案 创建一个message-onlywindow,并处理WM_QUERYENDSESSION和/或WM_ENDSESSION消息。 关于C++Win

c++ - WINAPI - 我想在一个单独的线程中进行消息泵

在WindowsAPI中,制作一个窗口需要一个消息泵来保持窗口运行和更新。现在,写一个消息泵由一个while循环组成,它控制了整个程序,不允许执行其他事情,这是一个大问题。考虑我的代码,它是一个头文件,我称之为CFrame.h(因为在里面我创建了一个名为CFrame的类,它旨在模仿JFrame在Java中)。换句话说,我希望可以创建CFrame的多个实例,以便显示多个窗口,并且消息循环不会在创建第一个窗口后停止窗口。我为函数ThreadExecution()创建了一个新线程,由于某种原因程序刚刚终止,为什么?#defineUNICODE#includeconstwchar_tCLASS

c - 如何在 ring0(内核模式)中使用 winapi 函数?

我无法在驱动程序中调用FileTimeToSystemTime()方法。错误是:错误C4013:“FileTimeToSystemTime”未定义;假设extern返回int。我也不能包含windows.h,因为我已经包含了ntddk.h,它会导致很多错误。如果我在header中将其声明为BOOLFileTimeToSystemTime(INconstPFILETIME,OUTPSYSTEMTIME);我会收到下一个错误:错误C2061:语法错误:标识符“FileTimeToSystemTime”错误C2059:语法错误:';'错误C2059:语法错误:“类型”错误C4013:“Fil

java - 在 java 应用程序中使用 winapi

我尝试在JAVA代码中调用MessageBoxA函数。以下方法有什么问题,以至于我的程序抛出了很多错误?packageloading.libraries;publicclassUser32{//firstcase:publicnativeintMessageBoxA(HWNDhWnd,LPCSTRlpText,LPCSTRlpCaption,UINTuType);//second:publicnativeintMessageBoxA(inthWnd,StringlpText,StringlpCaption,intuType);static{System.loadLibrary("Use

c++ - WINAPI CreateThread 并不总是运行线程

我正在尝试使用WindowsCreateThreadAPI创建和执行线程。我看到运行该程序会产生不确定的行为。我从程序的输出中看到,线程方法“my”有时会被执行,有时不会。这可能是什么原因?该程序非常简单,如下所示。还有应该用什么初始化dwThreadID。它应该是0还是任何整数值?PS:在VisualStudio中编译。#include"stdafx.h"#include#includeusingnamespacestd;//DWORDWINAPIDWORDWINAPImy(LPVOIDlpParam){for(inti=0;i 最佳答案

c++ - WINAPI 枚举WindowsProc : Non-Standard Syntax; use & to create a point to a member

我在调用EnumWindows(EnumWindowsProc,0)时不断收到错误消息;它将我的BOOLCALLBACKselectionWindows::EnumWindowsProc(HWNDhWnd,longlParam)函数转换为参数。我知道它与类和selectionWindows::有关,但我终究无法弄明白。这是.h#ifndefSELECTIONWINDOWS_H#defineSELECTIONWINDOWS_H#include#include"mainwindow.h"#include#includeclassselectionWindows:publicQWidget{

windows - 批处理文件 - 拖放 INTO 控制台窗口?

我知道如果将文件拖到批处理文件上可以使用%1,但是可以将文件拖放到控制台窗口中吗?就像我启动一个批处理文件并说:Draganddropafilebelow:[]当你将一个文件拖到控制台窗口时,它说:Draganddropafilebelow:[SomeFile.txt]有人知道如何做到这一点吗?即使有公用事业? 最佳答案 您可以使用此代码:@echooffechoDraganddropafileorenterfilenamewithkeyboard.set/P"FileName=HitENTERwhendone:"echoDropp

c++ - 如何获取具有可见窗口的任何进程的名称 - WinAPI?

我正在尝试获取具有可见窗口的进程的名称。例如,如果我打开了Chrome,我想获取字符串“chrome.exe”,但我只能使用下面的代码获取初始值“unknown”。我读到它可能是一个访问权限问题,你能建议我如何更改它们以获得进程名称吗?DWORDidProc=0;//pointertotheprocesswhichcreatedthewindowDWORDidThread=GetWindowThreadProcessId(Wnd->get_handle(),&idProc);Wnd->set_pid(idThread);//Wndisanobjectofaclassicreated,t